package src.greedy;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author FengBaiyu
 */
public class CardChess
{
    /**
     * 给定两个大小相等的数组 A 和 B，A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。
     *
     * 返回 A 的任意排列，使其相对于 B 的优势最大化
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/advantage-shuffle
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     * @param nums1
     * @param nums2
     * @return
     */
    public int[] advantageCount(int[] nums1, int[] nums2) {
        int [] ans = new int[nums1.length];
        Arrays.sort(nums1);
        List<Integer> list = Arrays.stream(nums1).boxed().collect(Collectors.toList());
        for (int i = 0; i < nums2.length ; i++)
        {
            int j =0;
            int length =  list.size();
            for ( j=0; j <length; j++)
            {
                if (list.get(j)>nums2[i]){
                    ans[i]=list.get(j);
                    list.remove(j);
                    break;
                }
            }
            if (j==length){
                ans[i]=list.get(0);
                list.remove(0);
            }

        }
        return  ans;
    }
}
